import {fileURLToPath, URL} from "node:url";

import {defineConfig} from "vite";
import vue from "@vitejs/plugin-vue";
import vueJsx from "@vitejs/plugin-vue-jsx";
import VueDevTools from "vite-plugin-vue-devtools";
import path from "path";
import {createSvgIconsPlugin} from 'vite-plugin-svg-icons'
import AutoImport from 'unplugin-auto-import/vite'

import px2rem from 'postcss-px2rem'
// import {baseSize} from '@/config/rem.js'
// 配置基本大小
const postcss = px2rem({
    // 基准大小 baseSize，需要和rem.js中相同
    remUnit: 16
})



export default defineConfig({
    server: {
        port: 8000
    },
    plugins: [vue(), vueJsx(), VueDevTools(),
        AutoImport({imports: ['vue']}),
        createSvgIconsPlugin({
            iconDirs: [path.resolve(process.cwd(), "src/assets/icons/svg")], //svg图片存放的目录
            symbolId: "icon-[name]", // symbol的id
            inject: "body-last", // 插入的位置
            customDomId: "__svg__icons__dom__" // svg的id
        })],
    css: {
        // 预处理器配置项
        preprocessorOptions: {
            // less: {
            //     math: "always",
            // },
            scss: {
                // 引入 mixin.scss 这样就可以在全局中使用 mixin.scss中预定义的变量了
                // 给导入的路径最后加上 ;
                additionalData: '@import "@/assets/styles/variables.scss";'
            }
        },
        loaderOptions: {
            postcss: {
                plugins: [
                    postcss
                ]
            }
        }
    },
    resolve: {
        alias: {
            "@": fileURLToPath(new URL("./src", import.meta.url)),
        },
    },
    build: {
        // rollupOptions: {
        //     input: path.resolve(__dirname, "./src/api/index.js"),
        //     output: [
        //         {
        //             dir: path.resolve(__dirname, "dist/es"), // ES模块的输出目录
        //             format: "es", // ES模块格式
        //             entryFileNames: "[name].js",
        //         },
        //         {
        //             dir: path.resolve(__dirname, "dist/iife"), // IIFE格式的输出目录
        //             format: "iife", // IIFE模块格式
        //             name: "MyLibraryii", // IIFE格式需要一个全局变量名
        //             entryFileNames: "[name].js",
        //         },
        //     ],
        // },
    },
});
